Description |
---|
MultiCopy permet la duplication (copier-coller) de plusieurs objets FreeCAD qui peuvent être étiquetés séquentiellement et de manière personnalisée. Version macro : 1.0.1 Date dernière modification : 2021-03-18 Version FreeCAD : version 0.17 et suivantes Téléchargement : Icône de la barre d'outils Auteur: Melwyncarlo |
Auteur |
Melwyncarlo |
Téléchargement |
Icône de la barre d'outils |
Liens |
MultiCopy.zip GitHub personnel - MultiCopy Github FreeCAD - MultiCopy Forum FreeCAD - MultiCopy Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
1.0.1 |
Dernière modification |
2021-03-18 |
Version(s) FreeCAD |
version 0.17 et suivantes |
Raccourci clavier |
None |
Voir aussi |
None |
'MultiCopy' est une macro créée et destinée à être utilisée dans l'application FreeCAD. MultiCopy permet la duplication (copier-coller) de plusieurs objets FreeCAD qui peuvent être étiquetés séquentiellement et de manière personnalisée.
Voici l'icône MultiCopy Macro.
La macro MultiCopy peut être téléchargée en utilisant le Gestionnaire des extensions intégré au logiciel FreeCAD.
MultiCopy peut être installé manuellement, de manière similaire à l'installation de Windows, ou en utilisant le terminal de commande et ses commandes pertinentes, comme indiqué dans le fichier INSTALL.
Par défaut, le terminal de commande Linux peut être lancé en appuyant simultanément sur les touches suivantes du clavier :
Control + Alt + T
MultiCopy peut être installé à l'aide des deux étapes suivantes :
Par défaut, le répertoire de la macro utilisateur de FreeCAD doit être situé à :
C:/Users/User_Name/AppData/Roaming/FreeCAD/Macro
MultiCopy peut être chargé en effectuant les étapes suivantes :
Avant de charger la macro MultiCopy, sélectionnez d'abord un ou plusieurs objets dans le doccument FreeCAD actif, puis chargez la macro. Ensuite, suivez les instructions de la boîte de dialogue, remplissez les entrées requises, et cliquez sur le bouton 'Paste'. En cas d'erreur ou d'avertissement, vous en serez automatiquement informé. Si vous rencontrez une erreur inattendue, communiquez-la en mentionnant la version de FreeCAD, en retraçant les étapes suivies et en précisant si un résultat a été généré (et dans quelle mesure).
Avant d'exécuter l'opération MultiCopy, sélectionnez d'abord un ou plusieurs objets dans le document FreeCAD actif.
import MultiCopy
MultiCopy.Launch()
La commande MultiCopy est la suivante :
Run (paste_code, copy_type=True, delete_selection=False, paste_document_label=None)
Les paramètres de la commande MultiCopy sont les suivants :
1. Name : paste_code Type : String Is Optional : False Description : The paste code commands string. For indentations, use \'\\t\'. For line breaks, use \'\\n\'. 2. Name : copy_type Type : Boolean or String or Integer Is Optional : True Description : The copy operation mode. Acceptable Values : 'Standard', 'Simple', True, False, 1, 2 Default Value : True 3. Name : delete_selection Type : Boolean Is Optional : True Description : If true, the selected objects are deleted after the MultiCopy operation. Default Value : False 4. Name : paste_document_label Type : String or FreeCAD.Document Is Optional : True Description : The label of the document to paste to, or the document object itself. Default Value : FreeCAD.ActiveDocument
Pour coller les objets sélectionnés dans le document actuellement actif comme une copie standard, et pour ne pas supprimer les sélections après l'opération.
import MultiCopy
some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands)
Pour coller les objets sélectionnés dans un autre document comme une simple copie, et pour supprimer les sélections après l'opération.
import MultiCopy
some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands, True, True, 'SomeDocumentLabel')
Les deux commandes récurrentes dans leur forme générique sont les suivantes :
from ... to ... :
[...] = ...
Pendant la saisie des Commandes de code de collage dans la zone de texte de saisie concernée, il y a trois indications sous forme de bandes colorées situées en bas de la zone de texte :
from 1 to 3 : [1] = {1}-Something_{n#}
Les valeurs 1 et 3 représentent la plage de duplication où les deux valeurs sont INCLUSIVES. La première valeur (de) doit toujours être INFÉRIEURE OU ÉGALE à la deuxième valeur (à). Les valeurs (ensemble) peuvent prendre la forme de l'un des cinq types de numérotation (Vérifiez 'Caractéristiques principales').
[1]
représente le premier objet d'une liste supposée d'objets sélectionnés par l'utilisateur.
{1}
représente le nom de l'étiquette du premier objet.
{n#}
représente une étiquette de numérotation du type 'Numériques ordinaires. (on y reviendra, plus tard)
REMARQUEZ que des retraits de tabulation corrects sont cruciaux pour les commandes ; ils ne peuvent pas être remplacés par des espaces.
Les crochets ne sont utilisés que pour les commandes du deuxième type générique. Les crochets [ et ] se trouvent toujours à gauche de la commande ; tandis que les parenthèses { et } se trouvent toujours à droite de la commande.
Laissons le nom de l'étiquette originale du premier objet être Corps. Ensuite, les commandes ci-dessus produiraient un ensemble d'objets dupliqués (du premier objet), chacun étiqueté comme suit :
Body-Something_1 Body-Something_2 Body-Something_3
Soit i un i-ème objet arbitraire d'une liste supposée d'objets sélectionnés par l'utilisateur.
[i]
représente le i-ième objet sans dépendances (par défaut).
[i|0]
représente le i-ième objet sans dépendances (autre forme).
[i|1]
représente le i-ième objet AVEC des dépendances incluses.
code>{n#} ou {N#}
sont du type "Chiffres ordinaires".
{R#}
ou {ru#}
ou {RU#}
sont du type "Chiffres romains majuscules".
{r#}
ou {rl#}
ou {RL#}
sont du type "Chiffres romains minuscules".
{A#}
ou {au#}
ou {AU#}
sont du type "Alphabet majuscule".
{a#}
ou {al#}
ou {AL#}
sont de type "Alphabet minuscule".
Une étiquette de numérotation peut avoir deux options supplémentaires :
{n#X}
Padding (de chiffres 'X').{n#X|i1}
Assignation d'un niveau de boucle imbriquée (à une boucle étiquetée 'i1')
Dans le cas d'une affectation de niveau de boucle imbriquée SANS remplissage, faites :
{n#0|i1}
OU{n#|i1}
from 1 to 2 : i1 : from a to b : i2 : [1|1] = Pasted-{1}-{n#3|i1}-{AU#0|i2}
Ici, les objets sont collés ainsi que les dépendances. L'étiquette 'Chiffre ordinaire' a un padding de '3', et l'étiquette 'Alphabet majuscule' a un padding de '0'.
NOTEZ comment la boucle 'from-to' utilise l'alphabet en minuscules ; mais l'étiquette sera sortie en majuscules.
Les commandes ci-dessus produiraient un ensemble d'objets dupliqués (du premier objet) chacun étiqueté comme suit :
Pasted-Body-001-A Pasted-Body-001-B Pasted-Body-002-A Pasted-Body-002-B
(1) | Il y a quelques inévitables conflits d'appellation entre les chiffres romains et les caractères alphabétiques, par exemple : c, v, i, x, etc. |
(2) | Par conception, les chiffres romains ont la priorité sur les caractères alphabétiques. |
(3) | Les dépendances ne s'appliquent qu'à la "copie standard" ; leur application à la "copie simple" sera automatiquement ignorée. |
__Title__ = "MultiCopy" __Author__ = "Melwyncarlo" __Version__ = "1.0.1" __Date__ = "2021-03-18" __Comment__ = "MultiCopy allows the duplication (copy and paste) of "\ "multiple FreeCAD objects that can be labelled sequentially "\ "and in a custom manner." __Web__ = "https://github.com/melwyncarlo/MultiCopy" __Wiki__ = "http://www.freecadweb.org/wiki/index.php?title=Macro_MultiCopy" __Icon__ = "MultiCopy_UI_Files/MultiCopy.svg" __Help__ = "Select one or more FreeCAD objects, then click on the "\ "MultiCopy button/macro, and follow the instructions in the dialog box." __Status__ = "stable" __Requires__ = "Freecad >= v0.17" __Communication__ = "https://github.com/melwyncarlo/MultiCopy/issues" __Files__ = "MultiCopy_UI_Files/MultiCopy_Main_Dialog.ui, "\ "MultiCopy_UI_Files/MultiCopy_Commands_Dialog.ui, "\ "MultiCopy_UI_Files/mc_d_imgs.gif, "\ "MultiCopy_UI_Files/MultiCopy.svg" # OS: Ubuntu 18.04.5 LTS # Word size of OS: 64-bit # Word size of FreeCAD: 64-bit # Version: 0.18.4. # Build type: Release # Python version: 3.6.8 # Qt version: 5.9.5 # Coin version: 4.0.0a # OCC version: 7.3.0 # Locale: English/UnitedKingdom (en_GB) # OS: Ubuntu 18.04.5 LTS (LXDE/Lubuntu) # Word size of OS : 64-bit # Word size of FreeCAD: 64-bit # Version: 0.19 # Build type: Release # Branch: unknown # Hash: 32200b604d421c4dad527fe587a7d047cf953b4f # Python version: 3.6.9 # Qt version: 5.9.5 # Coin versio: 4.0.0a # OCC version: 7.3.0 # Locale: English/UnitedKingdom (en_GB)
Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro
# This code is copied instead of the original macro code # to guide the user to the online download page. # Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki # or if the RAW code URL is somewhere else in the wiki. from PySide import QtGui, QtCore diag = QtGui.QMessageBox(QtGui.QMessageBox.Information, "Information", "This macro must be downloaded from this link\n" "\n" "https://raw.githubusercontent.com/melwyncarlo/MultiCopy/main/MultiCopy.FCMacro" + "\n" "\n" "Quit this window to access the download page") diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) diag.setWindowModality(QtCore.Qt.ApplicationModal) diag.exec_() import webbrowser webbrowser.open("https://raw.githubusercontent.com/melwyncarlo/MultiCopy/main/MultiCopy.FCMacro")
[1] Dépôt Github de MultiCopy
[2] Dépôt Github des macros FreeCAD - MultiCopy
[3] Page de discussion du forum FreeCAD - MultiCopy